/msg #mychannel Invalid query, no addresses being resolved | halt
I can see 2 things, when you use { you don't need the /, and I do believe you want { msg #mychannel Invalid query, no addresses begin resolved } { halt }
on *:text:!dns:#mychannel:{
if ($2 == $null) { msg #mychannel Invalid query, no addresses being resolved
halt
}
}
else { dns $2 }
}