Code:
on *:text:!watchtime*:#:{ 
  echo -s DEBUG: $!isfile: $isfile(points.ini) ~ $!ini: $ini(points.ini,$+(#,.,$nick)) ~ $!readini: $readini(points.ini,$+(#,.,$nick),Points) 
  if (($readini(Points.ini,$+(#,.,$nick),Points)) < 12) { msg # $nick has watched the stream for $calc($readini(Points.ini,$+(#,.,$nick),Points) * 5 ) minutes. }
  if (($readini(Points.ini,$+(#,.,$nick),Points)) > 12) && (($readini(Points.ini,$+(#,.,$nick),Points)) < 287 ) { msg # $nick has watched the stream for $floor($calc($readini(Points.ini,$+(#,.,$nick),Points)) / 12 )) hours. }
  else { msg # I'm not working. }
}


Can you have someone try to run the script and then post the message that is echoed to your status window here?

Also, are you aware that your script will trigger for values less than 12, and values more than 12, but not values that are actually 12?

Your first if statement uses "< 12" (less than 12) and your second uses "> 12" (more than 12) but nothing handles 12 itself. If 12 is your points value then the else statement will be triggered and your script will say "I'm not working."

<= 12 or >= 12 would catch 12 as well, as these mean 'less than or equal to' and 'more than or equal to' respectively.