FindListElem isn't supposed to be called on nil at all. If it is, the server prints an error and nil is returned as a default value.  So a better fix is

if (IsClass(oUser, &User)
   AND (lEnchanted = $ OR FindListElem(lEnchanted, oUser) = 0)
   AND <range check>

Though honestly I'm not totally sure what the point this check is.  We're worried about a user appearing in a room twice?  Weird.