As a work-around, you could implement an 'ignore-and-close-queries' alias...maybe something like:

Code:
alias cqignore {
  !ignore $1-

  ;; get the important information
  if ($left($1,1) == -) {
    ;; There are options present...
    var %options = $1
    var %address = $2
    var %type = $3
  }
  else {
    ;; no options, so the first param is the nick or address
    var %address = $1
    var %type = $2
  }

  ;; if we're not ignoring privmsgs, then we don't need to 
  ;; test the queries
  if (%options && p !isin %options) { return }

  ;; if type is present, re-evaluate the address to a mask
  if (%type) { 
    %address = $address(%address, %type) 
    ;; If we couldn't evaluate the address, bail out
    if (!%address) { return }
  }

  ;; search the queries for address matches
  var %i = 1
  while ($query(%i).address) {
    ;; If the address matches, close the query
    if (%address iswm $+($ifmatch,!,$ifmatch)) { 
      close -m $query(%i) 
    }
    inc %i
  }
}


Then just type
Code:
/cqignore [options] <nick|address> [type] [network]


i.e. the syntax is the same as for /ignore - it calls ignore, and then tests to see if you have queries open that match the address you are ignoring. (I'm sure there are probably some mistakes - I only did minimal testing)