Вот я задался вопросом: "А что же такое этот IRQL? Какая-то софтварьная выдумка или что-то еще?" Отдизасмил KeRaiseIrql, что в hal.dll:
....
80012258 dword_80012258  dd 41413D00h, 81716151h, 0B1B1A191h, 3 dup(0B1B1B1B1h)
80012258                                         ; DATA XREF: KfRaiseIrql+3r
80012258                                         ; KfLowerIrql+6r ...
80012258                 dd 0C1B1B1B1h, 0FFEFE1D1h
..........
         KfRaiseIrql     proc near               ; CODE XREF: sub_800122F8+5p
80012278                                         ; .text:80014C75p ...
80012278                 movzx   edx, cl
8001227B                 movzx   ecx, byte ptr ds:dword_80012258[edx]
80012282                 mov     eax, ds:0FFFE0080h
80012287                 mov     ds:0FFFE0080h, ecx
8001228D                 shr     eax, 4
80012290                 movzx   eax, byte ptr ds:unk_8001D088[eax]
80012297                 retn
80012297 KfRaiseIrql     endp
...........
Почитав Pentium4 Software Developers Manual с intel.com понял, что FFFE0080 - это адрес Task Priority Register APIC, который оперделяет приоритет текущей задачи и может млужить отсеивателем ненужных событий, прерываний. Формат:
0-3   - Task Priority SubClass
4-7   - Task Priority Class
8-31  - Reserved
Из дизасма видно, что для PASSIVE_LEVEL в TPR пишется 0x00, те все прерывания разрешены (IntPrioirty>TaskPriority чтобы сработало), APC_LEVEL - 0x3D, DISPATCH_LEVEL - 0x41,.... HIGHEST_LEVEL - 0xFF - процессор мертв для прерываний (проверял в SoftIce).
Это я все к чему - прерывание Int1 по умолчанию может иметь такой приоритет (при трассировке Kernel Debugger-ом он наверно искусственно повышается), что скажем при IRQL >=APC_LEVEL проц его проигнорирует. 
Я конечно не утверждаю точно, тем более что еще не разобрался как эти приоритеты устанавливаются.. Но все же это вполне возможно. Так и получится что в обработчике int1 всегда PASSIVE_LEVEL (в обработчике на который указывает адрес в IDT).