Исключение определённых ID с условием ИЛИ работает некорректно?
А какой вопрос? Если интересно что не так с запросом на RoR, то было бы полезно его увидеть.
Сам sql запрос смотрится слишком странно, так как genre_id по-любому не сможет быть равен 10 и 12 одновременно. Если я правильно понял задачу (тут она тоже не описана), то надо делать AND вместо OR. То есть, если фильм не имеет жанр 10 и не имеет жанр 12.
Одна из тех ситуаций, когда M2M не айс.

Делайте exclude грубо говоря
SELECT `movies`.* FROM `movies` 
INNER JOIN `movie_genres` ON `movie_genres`.`movie_id` = `movies`.`id` 
WHERE movies.id not in 
(
select movies.id from movies left join movie_genres on movies.id=movie_genres.movie_id 
where movie_genres.genre_id in (10,12)
)
GROUP BY `movies`.`id`;
