You're not specifying the country as US in the second URL:
The second url gives google a parameter named "components%3Dpostal_code:75019|country:US" with no content, while the first one gives google a parameter named "components" with a content of "postal_code:75019|country:US" - the = sign is important as the separator between parameter name and value. If you url-encode it, it is not considered for this purpose anymore.
So, you should not URL-encode the equals sign if it should signify the separation between a parameter name and its value... meaning you will have to change your production code to produce the first URL. The second one just isn't representing what you want to express.
Since you don't use any other url-encoded characters (at least not in the link shown above), it might also work to do a separate Url-decoding step somewhere before sending the request to google (if you absolutely can't change production code).