потому что
$sql = "SELECT id FROM users WHERE rights = 0 AND id != $user_id";
elseif (in_array('only_usr', $who) && in_array('only_mans', $who)) // Только простым юзерам с уточнением только парням
$sql = "SELECT id FROM users WHERE rights = 0 AND sex = 'm' AND id != $user_id";
сначало проверяет на rights = 0 ( проверка выполнена) и дальше уже rights = 0 AND sex = 'm' не проверяет