Code:
DELETE FROM `charts` AS charts
WHERE charts.`votes` > 0
   AND NOT EXISTS (
  SELECT * FROM `charts` AS charts2
  WHERE charts2.`votes` > 0
  ORDER BY charts2.`pointspervote` DESC
  LIMIT 100;
);
KA, ob das geht *Schultern zuck*

Ansonsten mach es halt einfach in zwei Queries...