Using this it works fine:
slist := s.split(['$'], TStringSplitOptions.ExcludeEmpty);
ExcludeEmpty is defined with SCOPEDENUMS ON.
{$SCOPEDENUMS ON}
TStringSplitOptions = (None, ExcludeEmpty);
{$SCOPEDENUMS OFF}
So you need to use TStringSplitOptions.ExcludeEmpty.