You could duplicate your layer in the main window's layer list (right-click your layer and the choose
Duplicate). This effectively loads your layer a second time without you needing to make a physical copy on disk and without you needing to convert your lines to points or anything like that (so it is effectively a virtual layer as you require). I would then select my new copied layer and use the
Layer->Query to create my sub-selection using a filter expression (this will limit the viewable items in the copied layer, leaving the original one alone). You can also turn your copied layer off so that it doesn't display. Now switch back to you map composer and use the copied layer to create your table.
Of course, if you are not going to include some of your items in the table, perhaps they shouldn't be on the map (and maybe you've used the layer style to hide the unwanted ones) - in which case use the same technique via
Layer->Query to limit the items to just those you want rather than hide some via the symbology and that way you don't need to duplicate the layer and can use a simpler approach to creating the style. I don't know if this is what you did but I can imagine it being done by some readers who are not aware of the option to sub-select their layer.