I think it’s being overthought. I don’t think we need anything like a filter, join, or query. Should just need simple IF statements and ‘&’.
Here is a method I’m currently using in one of my apps. It’s a little different since the names are in the rows instead of in the heading. In my case the bowlers are different each week, and are chosen using choice components. I also strip out the last name for my result field.

=ARRAYFORMULA(IF(LEN(A2:A)=0, "", IFERROR(LEFT(A2:A, FIND(" ", A2:A)) & "| ") & IFERROR(LEFT(B2:B, FIND(" ", B2:B)) & "| ") & IFERROR(LEFT(C2:C, FIND(" ", C2:C)) & "| ") & IFERROR(LEFT(D2:D, FIND(" ", D2:D)) & "| ") & IFERROR(LEFT(E2:E, FIND(" ", E2:E)))))
For your situation, this is more of what I was thinking. It’s a lot simpler and works great with array formulas. I am showing as 2 columns to get the result for simplicity, but both formulas could be combined into one column.

Column E Formula:
=ARRAYFORMULA(IF(A2:A = TRUE, A1 & ", ", "") & IF(B2:B = TRUE, B1 & ", ", "") & IF(C2:C = TRUE, C1 & ", ", "") & IF(D2:D = TRUE, D1 & ", ", "") )
Column F Formula (to remove final comma):
=ARRAYFORMULA(IF(LEN(E2:E)=0, "", LEFT(TRIM(E2:E), LEN(TRIM(E2:E))-1)))
If you wanted to combine both formulas together, then use something like this. It just replaces the E2:E in the LEFT with the the formula from Column E above, so it’s basically joining the columns twice.
Once for the Trim and once to figure out the Length:
=ARRAYFORMULA(IF(LEN(A2:A)=0, "", LEFT(TRIM(IF(A2:A = TRUE, A1 & ", ", "") & IF(B2:B = TRUE, B1 & ", ", "") & IF(C2:C = TRUE, C1 & ", ", "") & IF(D2:D = TRUE, D1 & ", ", "")), LEN(TRIM(IF(A2:A = TRUE, A1 & ", ", "") & IF(B2:B = TRUE, B1 & ", ", "") & IF(C2:C = TRUE, C1 & ", ", "") & IF(D2:D = TRUE, D1 & ", ", "")))-1)))