Obejście, które można znaleźć w http://bugs.mysql.com/bug.php? id=6980 , który zadziałał dla mnie, to utworzenie aliasu do zapytania podrzędnego, które zwróci elementy. Więc
delete from table1 where id in
(select something from table1 where condition)
zostanie zmieniony na
delete from table1 where id in
(select p.id from (select something from table1 where condition) as p)