mIRC is more than likely suppose to work like this because:
a) it would be "wasteful" (process wise) to check everytime someone msg'd you something to see if they were ignored, instead this is done "On Open".
b) this also allows for you to IGNORE the person, and "open a query", and they may talk with you while the query is open without you having to unignore them (neat way to talk to people when YOU want to, not when they want to).
Eamonn.