Suppose the NBA gave the middle finger to Saudi Arabia but cozied up to China, would that be worse than if they cozied up to both? Your stance is wildly illogical.
If they said “we cozied up to China, but didn’t cozy up to SA because it made business sense in the former scenario but not in the latter one”, that would be one thing. But if they said “we cozied up to China because we want to stay out of politics and be neutral” while still not cozying it up to SA and flaunting how morally righteous they were for giving SA the finger, that’s a very different scenario.
At best, it is just dishonest and hypocritical.
That doesn't mean it is better to also not be hard on North Carolina, which is OP's error. There is no moral framework in which appearance of hypocrisy is worse than not helping others.
In this case, how?
In other words, it's not a one-off. There is the same positive effect in the short term, but the long term differs.
All of that logic could easily apply to this scenario.
For a simpler scenario, if a company does a good deed to apologize for a bad deed, and the good deed is smaller but gets them off the hook, then that's a very clear net negative.