Es stimmt, dass Sie nicht dieselbe Tabelle, aus der Sie Zeilen löschen möchten, in einem direkten Subselect verwenden können, aber mit einem kleinen Trick - einem Subselect auf einem Subselect als abgeleitete Tabelle - können Sie es tun:
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
);
Ich gehe davon aus, dass die Zeilen ohne Kommentare gelöscht werden sollten.