Mám podezření, že to souvisí s zámky mezer a zámky dalšího klíče a rozdíly v chování OPAKOVATELNÉHO ČTENÍ :
Výňatky jsou z dokumentů MySQL:SET TRANSACTION syntaxe
a ČTĚTE ODPOVĚDĚNO :
Možná nám OP může sdělit stav innodb_locks_unsafe_for_binlog system
a pokud dojde ke stejnému uzamčení při změně nastavení této proměnné.
Také, pokud dojde ke stejnému uzamčení s ne sekvenčními ID, například 18
a 20
nebo 18
a 99