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