È vero che non puoi usare la stessa tabella da cui vuoi eliminare le righe in una sottoselezione diretta, ma con un piccolo trucco - una sottoselezione su una sottoselezione come tabella derivata - puoi farlo:
DELETE FROM votes
WHERE id IN (
SELECT
t.id
FROM (
SELECT v.id, COUNT(c.comment) cnt
FROM votes v
LEFT JOIN comments c ON f.id = v.post_id
GROUP BY v.id
HAVING COUNT(c.comment) = 0
) t
);
Presumo che le righe senza commenti debbano essere eliminate.