You could just use "raw -q privmsg $1 : [color:red]$+ $2-[/color]", but you don't need the /raw command there. Simply use /msg quietly - "[color:red].msg $1-[/color]" (it will work inside your aliased /msg).
About mIRC stripping consecutive spaces that you send, there's nothing you can do about that, since it's its parsing method (a.k.a. limitation) to handle the given parameters. Everytime you use a /command (ie. /msg), mIRC will strip the consecutive spaces.