Function for strings (ConcatIf) like SumIf

Is there function for string like SumIf (concatenate instead sum)?

Yes, for this task you can use combination of functions TEXTJOIN() and IF()
For example, if you have in range A2:A100 some text strings and in range B2:B100 condition for concatenate (or skip any cells) then use array formula like as

{=TEXTJOIN(", ";1;IF(B2:B100;A2:A100;""))}

User function:

Function ConcatIf ( compareRange As Variant, xCriteria As String, stringsRange As Variant, Optional Delimiter As String)

Dim nConcatif As String

nConcatif = “”

For i = 1 To ubound ( compareRange, 1 )

  If  compareRange (  i, 1 ) = xCriteria Then
      nConcatIf = nConcatIf & Delimiter & stringsRange ( i, 1 )           
  End If

Next i

nConcatIf=Mid(nConcatIf, Len(Delimiter) + 1)

ConcatIf = nConcatIf

End Function