I would take a little bit different approach.
1.Vector -> Data management tools -> Join attributes by location
- set your polygon layer (grid layer) as a Base layer and point layer as a Join layer
- set Geometric predicate to Intersects
- For Fields to add section choose Name field (from your point layer)
As a result you will get a layer with as many rows as you have intersecting points with your polygons. At one row you see the information regarding your polygon object + the name of the point object it intersects with (e.g. if grid A1 contains 3 points, grid A1's field info will show up for three rows each time associated with different point name).
- Create new fields for this result layer.
2.1 The numerical field telling you the number of points in each polygon with
count("grid_id", group_by:="grid_id")
2.2 The list of the point layer names including in each grid with
concatenate_unique("point_name", group_by:="grid_id", concatenator:=' ,')
- Delete additional fields and rows to get the desired kind of table