If I understand correctly, you want to sort the results by the number of matches in descending order. To do this, you can try:
SELECT movie
FROM genre_rel
WHERE genre IN (1, 8, 3)
GROUP BY movie
order by count(movie) desc
And if you want the films to meet all the criteria, you can use:
SELECT movie
FROM genre_rel
WHERE genre IN (1, 8, 3)
GROUP BY movie
HAVING count(movie) = 3
UPDATE:
, MySql. IN, . , . , genre_rel, . :
SELECT movie
FROM genre_rel
INNER join
(
select 1 genre, 1000 weight
union all
select 8, 100
union all
select 3, 10
) weights
on genre_rel.genre = weights.genre
GROUP BY movie
order by sum(weight) desc
, , 5, 3 . genre_rel, , ( - ).