It's not possible to remove faction hullmods from the drop groups without making them impossible to acquire in shops.
Hmm - looked into this, and I see what you're saying; since drop_data keys off the commodity and group columns combined, it's not possible to edit the commodity column and replace the row entirely, since that'll change the key and just add a new row.
I *think* it's possible to work around it, though - e.g. if we were editing the any_hullmod_low group, could set the probability to 0 by keeping the same commodity/group id and only changing the weight:
item_modspec:{} any_hullmod_low 0
And then could add another entry into it:
item_modspec:{tags:[!no_drop]} any_hullmod_low 10
Which would only let hullmods without the "no_drop" tag drop from that group. Does that seem like it'd work? In any case, it seems like something I should do in vanilla anyway, to add the easy option for hullmods to opt out of being dropped. So: added the tag-check to the mod drop groups.
Edit: changed the vanilla tag to "no_drop_salvage" to differentiate from hullmods that can't be dropped after combat, since it seems like there'd be times you'd want one and not the other.