Deixe-me ver seus casos e explicar como esses bloqueios funcionam:
1 caso
T1 deseja atualizar algumas linhas em sua tabela de teste. Esta transação coloca o bloqueio IX em todas as tabelas e o bloqueio X nas primeiras 5 linhas.
T2 deseja atualizar algumas linhas em sua tabela de teste. Esta transação coloca IX (porque IX compatível com IX) trava em toda a tabela e tenta as primeiras 5 linhas mas não consegue porque X não é compatível com X
Então estamos bem.
caso 2.1
T1 deseja atualizar algumas linhas em sua tabela de teste. Esta transação colocou o IX lock em toda a tabela e o X lock nas primeiras 5 linhas.
T2 deseja selecionar algumas linhas da sua tabela de teste. E não coloca nenhum bloqueio (porque o InnoDB fornece leituras sem bloqueio)
caso 2.1
T1 deseja atualizar algumas linhas em sua tabela de teste. Esta transação colocou o IX lock em toda a tabela e o X lock nas primeiras 5 linhas.
T2 deseja atualizar (selecionar para atualização) algumas linhas de sua tabela de teste. Coloca IS em toda a tabela e tenta obter o bloqueio S na linha e falha porque X e S são incompatíveis.
Também esteja sempre ciente do nível de isolamento:níveis diferentes causam mecanismos diferentes para liberar/adquirir bloqueios
Espero que ajude