Din ALTER TABLE table ADD CONSTRAINT foreign_key FOREIGN KEY
är desamma, så de kan inte vara orsaken till felet.
(...texten är borttagen)
Kan inte förklara det konstiga beteendet. Kan föreslå en lösning:
SET FOREIGN_KEY_CHECKS = 0;
DELETE FROM A WHERE ID=1;
SET FOREIGN_KEY_CHECKS = 1;