En løsning, fundet i http://bugs.mysql.com/bug.php? id=6980 , der virkede for mig, er at oprette et alias til underforespørgslen, der returnerer emnerne. Så
delete from table1 where id in
(select something from table1 where condition)
ville blive ændret til
delete from table1 where id in
(select p.id from (select something from table1 where condition) as p)