Esta consulta deve retornar os ids dos vídeos (v2) que possuem tags em comum com seu vídeo (v1), em ordem decrescente do número de tags em comum.
SELECT v2.video_id
FROM VideoTags AS v1
JOIN VideoTags AS v2
USING (tag_id)
WHERE v1.video_id = ?
AND v1.video_id <> v2.video_id
GROUP BY v2.video_id
ORDER BY COUNT(*) DESC;