You are seeing discrepancies in how Heroku Connect syncs
null and empty values from Salesforce.
In Salesforce, values that aren't set have
null values. This is different than an empty string, which is also a possible value.
There used to be a discrepancy in how Heroku Connect handled values that are defined as
null in Salesforce, depending on whether it used the SOAP API or the Bulk API to retrieve the values.
However, that discrepancy was addressed in 2017.
null values in Salesforce are now written as
NULL values in Postgres.