Eu acho que você está usando um mecanismo de armazenamento que suporta transações (por exemplo, InnoDB), mas você não chama
db.commit()
após o DELETE. O efeito do DELETE é descartado se você não confirmar. Consulte http:// mysql-python.sourceforge.net/FAQ.html#my-data-disappeared-or-won-t-go-away :
Veja também esta pergunta SO semelhante:Falha na consulta de atualização do Python MySQLdb