As JB says, it's an array formula, but not because of StringConcat; it's because of this part:

=StringConcat(",", IF(B5:B9>0, A5:A9, "") )

... because the IF has to evaluate an array and return an array.