Your code works for me BUT ....
If you use ChangeFontColor manually you can set the effect to be NOT cycle through another color before going green. In code as far as I know you cannot specify this. Why not try the Brush On Color effect instead?
Sub changeColor()
Dim osld As Slide
Dim shpTop As Shape
Dim oeff As Effect
Set osld = ActivePresentation.Slides(1)
Set shpTop = osld.Shapes("Text_1")
Set oeff = osld.TimeLine.MainSequence.AddEffect(Shape:=shpTop, effectid:=msoAnimEffectBrushOnColor, trigger:=msoAnimTriggerWithPrevious)
oeff.EffectParameters.Color2 = RGB(0, 255, 0)
oeff.Timing.TriggerDelayTime = 1
oeff.Timing.Duration = 0.5
End Sub