A couple of things...
If you loop the animation, you don't need to play it.
If you are looping it then you don't need to check if it's playing, it will be playing until you tell it to stop.
It looks like you want to pick between two menu choices, PLAY and CREDITS. Looping to capture UPKEY and DOWNKEY is fine, except, as you noted, the color changes back when you stop pressing the key.
You might want to use a "flag" to tell which key was pressed, then set the color according to the flag. Like thus...
SET DISPLAY MODE 640,480,32
LOAD ANIMATION "Media\Crimson Haze HD.AVI", 5
SYNC ON : SYNC RATE 60
CLS
LOOP ANIMATION 5
KeyFlag = 1
DO
SET TEXT FONT "Brain Damage"
SET TEXT SIZE 36
TEXT 77,30, "Crimson Haze"
` this part changes the flag
If UPKEY() THEN KeyFlag = 1
If DOWNKEY() THEN KeyFlag = 2
IF KeyFlag = 1
INK RGB(255,0,0),0
SET TEXT FONT "CORPSE"
SET TEXT SIZE 40
TEXT 142,180,"PLAY"
INK RGB(150,0,0),0
TEXT 115,250, "CREDITS"
ENDIF
IF KeyFlag = 2
INK RGB(255,0,0),0
SET TEXT FONT "CORPSE"
SET TEXT SIZE 40
TEXT 115, 250, "CREDITS"
INK RGB(150,0,0,),0
TEXT 142,180, "PLAY"
ENDIF
SYNC
LOOP
Now, that code is pretty basic, and I'm sure others here can suggest some clever and tricky ways to do the same thing. But if you are trying to learn DarkBASIC, then you might do well to start with small, easy steps, and build up to the tricky stuff.