вывести из таблицы где нет значений  второй таблицы
Это задача для LEFT JOIN. Общий принцип такой
SELECT t1.* FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.id IS NULL
Соответственно, эту краковсую колбасу из вопроса надо переписать примерно так
SELECT id FROM users u LEFT JOIN user_dating ud ON ud.user_id=u.id
  WHERE ud.user_id IS NULL 
    AND u.photo='1' and u.gender='1' 
  ORDER BY rand()
Также традиционно напоминаю всем жертвам видеокурсов по пехапе, что SQL запросы необходимо выполнять 
только через подготовленные выражения.