I found that instead of having different paddings depending on having an icon or not (which is annoying to set up) if you put some padding on the actual text inside the button, you get the same result.
If your button has an icon on the left, then the padding is just 12px. But when the padding is compounded with the padding of the text, you get 16px.
This way you don't have to juggle conditional paddings, and this just works
the difference between a senior and a junior designer