Maybe this is what you're looking for:
Code:
On *:open:?:*:{ .timer 1 0 auth_query $nick }
alias -l auth_query {
  if $?!="Accept private message from $1" == $false {
    .ignore -pntiu120 *!*@ $+ $gettok($query($1).addr,2,64)
    close -m $1
  }
}


It asks you for an authorization every time a new query window is open.

If you select 'No', the window will be closed, and a temporary ignore will be placed on the user's host.

The timer is used, because mIRC doesn't allow user-input identifiers ($input, $?, $?!) to be called directly from an event.