/set -n can allow for "", but it wouldn't change the underlying problem that pishposh pointed out:

You can directly write your variable in the variables tab like so:

%myvar ""

But you still won't be able to pull it out. This is because mIRC treats "" as a special value. I'm not really sure why it does this, but it does. Until (if) this behaviour is changed, there's no way for a variable to contain "" while still being usable.

Your best bet would be to NOT use mIRC's variables for storing arbitrary data. Given that %variables are just a convenience shorthand for using /writeini and $readini, nothing is stopping you from using those two commands on your own for your arbitrary data format, and not dealing with mIRC's variable limitations.

So rather than trying to find a workaround to make variables work the way you want, you can simply avoid them in this case. You don't really need them.

alias mydata { return $readini(myfile.ini,section,$1) }
//echo -a $mydata(myvar)

- argv[0] on EFnet #mIRC
- "Life is a pointer to an integer without a cast"