Aside from using $istok for the channels, your current code would not work properly, as mIRC doesn't allow internal recursion of commands, yet the msg in the else section would call the alias again.
To force mIRC to use the built-in coding for the /msg command, prefix the command with an !
ie: /!msg
Also, you don't specify where the final message is to be sent to.
alias msg { if !$istok(#mSL #mIRC #IRChelp #BNC,$chan,32) { /!msg $chan $$1- } }