You can remove your subquery and rewrite your query as below,also you can use the user id AND ratings.user_id = 1
condition in your on clause of join so still all videos will be returned even if they are not related to that user
SELECT
videos.id,
count(ratings.id) AS rating_count
FROM videos
LEFT JOIN ratings
ON (ratings.video_id = videos.id AND ratings.user_id = 1)
GROUP BY videos.id
HAVING rating_count = 0
ORDER BY ratings.rating DESC
LIMIT 20