Una soluzione alternativa, trovata in http://bugs.mysql.com/bug.php? id=6980 , che ha funzionato per me è creare un alias per la query secondaria che restituirà gli elementi. Quindi
delete from table1 where id in
(select something from table1 where condition)
verrebbe cambiato in
delete from table1 where id in
(select p.id from (select something from table1 where condition) as p)