Se entendi corretamente, você deseja classificar os resultados por número de correspondências em ordem decrescente. Para fazer isso, você pode tentar:
SELECT movie
FROM genre_rel
WHERE genre IN (1, 8, 3)
GROUP BY movie
order by count(movie) desc
E se você quiser filmes que correspondam a todos os critérios, você pode usar:
SELECT movie
FROM genre_rel
WHERE genre IN (1, 8, 3)
GROUP BY movie
HAVING count(movie) = 3
ATUALIZAR:
Este é o melhor que posso fazer no MySql. Você não pode usar IN porque não pode extrair informações sobre a ordem dos filtros. Se você adicionar uma tabela derivada como meio de filtragem, poderá anexar essas informações e usá-las para mostrar resultados por correspondências posicionais. Observe que você não fornece nenhuma informação de pedido na tabela gender_rel para que você realmente não saiba a importância dos gêneros por filme. Esta consulta fornecerá os filmes correspondentes por ordem decrescente de importância dos gêneros nos critérios:
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
Observe que todos os filmes, exceto 5, pertencem a todos os 3 gêneros. Se você adicionar uma coluna ao gênero_rel representando a ordem de importância, poderá criar alguma matemática (peso - importância ou algo semelhante).