I was thinking more of these trace lines and also guess the If was never true since you have the color as string!
Have a look at this version and see what it does for you.
WinActivate("TEST")
HotKeySet("{ESC}", "cancel")
Local $color
While 1
$color = PixelGetColor (165, 550)
ConsoleWrite('+ $color = ' & $color & " - " & Hex($color, 6) & @CRLF) ;### Debug Console
If $color = 0x41C80F Then
sleep(1000)
ConsoleWrite('> Left click on (165,550)' & @CRLF) ;### Debug Console
MouseClick("left", 165,550) ;CHECK JOB
Else
Sleep(1000)
ConsoleWrite('! Left click on (550,630) ' & @CRLF) ;### Debug Console
MouseClick("left", 550,630)
EndIf
Sleep(2000)
WEnd
Func cancel()
Exit
EndFunc
So you really need to try and understand what you are doing and how to properly go about testing!
Jos