try this...
alias queStack {
  hinc que 1
  if ($hget(que,1) <= $hget(que,0).item) $eval( $hget(que,$hget(que,1)) ,2)
  else { 
    .timerQue off 
    .hfree que 

* I dont know why you were using $( with out a closing brace so i assumed it wasnt ment to be there, whcih would make sence if u used /que from the editbox
/que $iif($sock(test), echo -a yes,)
/que $iif($sock(test), echo -a yes, echo -a no)

* if your doing it from a script or using // then it would need to be like this
//que $l( $iif($sock(test), echo -a yes,) ,0)
//que $l( $iif($sock(test), echo -a yes,echo -a no) ,0)

* i assume you are trying to queue up the command in $iif($sock(test), echo -a yes,)

The problem you were having is there is only one evaluation of $hget(que,$hget(que,1)) in your code this replaces it with its contents value.
Thats all fine if the value is say echo -a the sky is blue becuase its evaluated to that and thats it.
If however the value was echo -a the time is $time you well see just that the "$time" not 12:00:00
So when u do a $iif( etc etc ect ), mirc goes I have no COMMAND called $iif it must be a server side command, ill send it to the server
You well note i said COMMAND, becuase since its not going to evaluate $iif() it doesnt see it as an $IDENTIFIER