Sospecho que tiene que ver con gap locks y bloqueos de tecla siguiente y las diferencias en el comportamiento de LECTURA REPETIBLE :
Los extractos son de documentos de MySQL:Sintaxis de SET TRANSACTION
y LEER COMPROMETIDO :
Quizás OP pueda decirnos el estado del sistema innodb_locks_unsafe_for_binlog system
variable y si ocurre el mismo bloqueo cuando se cambia la configuración de esta variable.
Además, si ocurre el mismo bloqueo con identificaciones no secuenciales, como 18
y 20
, o 18
y 99