Well for one you have the "<50" in the outside of the parentheses, so that will give you an error because the command requires both a character and an integer within that function (the parentheses). I don't think the command would recognize "<" even if it was on the inside though.
Here's an idea, not sure if this will work or not:
PROC
CharacterTurnStarted(CHARACTER_Ulfred_GateKeeper_Boss)
AND
CharacterGetHitpointsPercentage(CHARACTER_Ulfred_GateKeeper_Boss,_Health)
And
IntergerMax(_Health, 50)
THEN
ETC...