En todo caso, ¿no sería así? Solo añado una negación al principio de línea:

!self.users_skills.find(:first, :conditions => ['role = ?', skill]).nil?

Si no recuerdo mal, x.nil? se evalúa a true si x es nil, pero mi condición original es true cuando el objeto **no es nil**.