on certain networks q is sent as a list mode which means mirc wont keep track of it as it would normally when its a nickmode and has an assosciated prefix. here's a small snippet for these cases (which supports the nickmode case too):
; $isowner(#chan,nick)
alias isowner {
if ($isid) return $iif($nick($1,$2,q) || $istok($ial($2).mark,$1,32),$true,$false)
.ialmark $2 $($+($,$3,tok($ial($2).mark,$1,32)),2)
}
on *:join:#:{ isowner # $nick rem }
on *:owner:#:{ isowner # $opnick add }
on *:deowner:#:{ isowner # $opnick rem }
raw 386:*:{ isowner $2- add }
the raw event triggers when you're sent the owner list (you use /mode #chan +q to request it), which you could do in a join event when ($nick == $me) && (q isincs $gettok($chanmodes,1,44)), i didnt feel like adding it.. up to you whether you want to send the extra command on join :P if you don't then, much like with the banlist, you cant be 100% certain who's on it after having just joined
so now you can use $iif($isowner(#,$me),add) in your popup