Una solución, que se encuentra en http://bugs.mysql.com/bug.php? id=6980 , que funcionó para mí es crear un alias para la subconsulta que devolverá los elementos. Entonces
delete from table1 where id in
(select something from table1 where condition)
se cambiaría a
delete from table1 where id in
(select p.id from (select something from table1 where condition) as p)