BUG: Keep categorical name in groupby
- [x] closes #28787
- [x] tests added / passed
- [x] passes `black pandas`
- [x] whatsnew entry

Fixes an issue where column name information was getting dropped when grouping by a categorical column.  I had to change a couple existing tests which I think were incorrect since they were implicitly assuming this behavior was expected.  Also confirmed that this fixes the problem from #28787:

```python
[ins] In [1]: import pandas as pd 
         ...:  
         ...: df = pd.DataFrame(data=(('Bob', 2),  ('Greg', None), ('Greg', 6)), columns=['Name', 'Items']) 
         ...:  
         ...: df_cat = df.copy() 
         ...: df_cat['Name'] = df_cat['Name'].astype('category') 
         ...: df_cat.groupby('Name', observed=True).agg(pd.DataFrame.sum, skipna=True).reset_index() 
         ...:                                                                                                                                                              
Out[1]: 
   Name  Items
0   Bob    2.0
1  Greg    6.0
```