вывести из таблицы где нет значений второй таблицы
Это задача для 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 запросы необходимо выполнять
только через подготовленные выражения.