Questa query dovrebbe restituire gli ID dei video (v2) che hanno tag in comune con il tuo dato video (v1), in ordine decrescente del numero di tag in comune.
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;