Hum, please try the following, modified code. I added some echoes for debugging purposes - please depict what's happening (or isn't happening) and which of the echoes you see.
Code:
on !op:join:#: { 
  ECHO # * Join: $nick is oplisted 
  if ($me isop #) { mode # +o $nick }
  elseif (!$var($+(oprequest.,$cid,.,#))) {
    ECHO $chan * requesting op from juicer
    set -eu10 $+(%,oprequest.,$cid,.,#) 
    msg juicer op pass
  }
}

on !*:join:#: { ECHO # * Join: $nick isn't oplisted }

on me:*:op:#: {
  ECHO # * Got ops. Users: $nick(#,0) • Unoped: $nick(#,0,a,o) • In internal address list: $ialchan(*,#,0) • Oplist masks: $ulist(*,op,0) 

  var %always.op.oplist = $true

  if ((%always.op.oplist == $true) || ($var($+(oprequest.,$cid,.,#)))) {
    ECHO # * checking for oplisted users - $iif(%always.op.oplist,always,op requested)
    var %n = 1
    while ($nick(#,%n,a,o)) {
      if ($ulist($ial($v1),op)) {
        ECHO # * $nick(#,%n,a,o) oplisted
        mode # +o $nick(#,%n,a,o)
      }
      inc %n
    }
  }
}

The variable %always.op.oplist determines in which case the script will check for oplisted users:
- if you put "$true" there, it will check the users of the channel everytime you get ops
- if you don't put "$true", it will check only if you got this @ because you did request it from "juicer" in the last 10s (because an oplisted user joined while you didn't have @)

You can remove the second on join event and the ECHO lines if it's working as expected.