Tokens are not variables, so that comparator cannot work; Tokens also always return text(so technically the result is never NULL, which would be the internal value that VoiceAttack renders as "Not Set").
You have to compare literal text instead:
Begin Condition : [{CMDSEGMENT:2}] Equals '' OR [{CMDSEGMENT:2}] Equals 'Not Set'
End Condition
{CMDSEGMENT:} will return ""(blank) if a segment is not spoken, or "Not Set" if the index points to a nonexistent segment, which can happen if multiple phrase options are used for a command.
E.G. "this is one [option;] with three segments;This one only has one segment", Using "{CMDSEGMENT:1}" with the former would either return ""(blank) or "option", using it with the latter instead would always result in "Not Set", because there is no second segment.