Why prefer "99% fat free" to "1% fat"?
If that same effect is happening with the "99% fat free" labeling, consumers would over-perceive the amount of fat


I think you are misunderstanding the desired effect here. I don't see how "99% fat free" would lead to the impression that a product contains a lot of fat. My read is, "This is 99% fat free! That's really good!" as opposed to "1% fat" which more emphasizes the fact that fat is still present than the fact that it's not. Said another way, because 99 is a far higher number than 1, the brain is more positive about getting something that is really good (much higher fat-free percentage) than something that is slightly bad (very small fat percentage)

The other thing you may be overlooking is that "fat free" is a marketing term in and of itself. Products claim to be "fat free" in order to attract dieters / those looking to eat healthy. When comparing products people may choose the ones which have actively tried to reduce the amount of fat; this is what the "fat free" term is intended to convey. Compare that with milk, where "1% fat" really means "1% milkfat", a technical description of how rich the milk is (where "whole milk" is 3.25% - 4% milkfat typically), so the terminology is not used as a means to advertise that product as being better than the competition but rather as a means to identify the content of the product itself.