Hi Mat,
The example you picked is problematic to start, because the count operator will always generate some output (zero is an output).
What you're trying to do is concatenate variables into a string. Whenever that happens, AFAIK, you need to use a macro.
You can use <$list> operators kind of to get the if-then thing. You can also use the reveal widget if your comparison value is already in a field or tiddler.
It would be great if there was a way to do comparisons like that in one swoop. Maybe someone will post one, but here's what I came up with:
\define foo() There are $(filteroutput)$ tiddlers with prefix New
<$list filter="[prefix[New]limit[1]]" emptyMessage="There are no tiddlers with prefix New" >
<$set name=filteroutput filter="[prefix[New]count[]]" >
<<foo>>
</$set>
</$list>
Good luck,
Mark