This is usually because the Object is selected as a Inner Join.
Inner Joins are required fields so what this means if if a user does not have that Object (Field) filled out in their profile then they will not appear in the list. Once you uncheck inner join for that object the users who do not have that field filled out will now display in the list.
For example you have Ethnicity Checked as a Inner Join, The user does not have Ethnicity filled out but they do meet the other Criteria. When you run the list this User does not display in the list.
Once we go back to Objects and uncheck the Inner Join for Ethnicity and run the list again, now this user will display in the list with a blank field for Ethnicity.