It's a slight fudge but try setting Width and Height on the Override default patch size part of the Legend Item properties to be very small but not zero i.e. 0.001. In my test it looks like the patch is either not there at all, or is too small to see. If you set to 0 then patches return to original size.
You can't use entries from your attribute table for the legend: every entry in the legend stands for a whole layer with (often) many features, each with own attribute-values. Your expression looks like you want to add attribute-values to the legend, which would list all the attribute-values to the legend-item. However, the expression-editor for legend-items is not made for that, see the documentation:
https://docs.qgis.org/3.10/en/docs/user_manual/print_composer/composer_items/composer_legend.html?highlight=legend#legend-items
You can use the expression editor here to add e.g. the number of features.
@MrXsquared: I'm not sure if the question is about atlas-generation, the question does not mention it.
Form the posting it is not really clear what exactely you want to achieve - maybe you can be more clear or add a screenshot?
Edit:
How is your layer styled? I guess you have one layer containing all the categories and you used the categorized symbol renderer as in the image below? In this case, in the second column you can enter manually the name that should appear on your legend in the print composer.
Otherwise, please elaborate on your set-up, your data, to be able to understand what exactely you want to do and make an example how your outpus should look like. As stated, legend is not the place to show contents of your attribute table, since this contains individual values for each individual feature, but the legends shows categories, thus aggregated groups of features.
Best Answer
The following C# snippet did the trick (in the OnClick() method of a Button AddIn):