Row estimate more accurate for primary key column than for others?
The &quot;magic&quot; you observed lies in this detail of the query planner. Quoting the manual:

In any case, the planner will scale the values it finds in pg_class to
match the current physical table size, thus obtaining a closer approximation.

The values it  in pg_class are reltuples and relpages - the number of live rows and data pages on disk.
Since the physical size will have approximately doubled, Postgres will expect approximately that many rows, which explains the pretty accurate estimate for the sequential scan.
Value frequencies in pg_statistic are outdated and cannot be scaled as trivially as the row count.  You'd need to run ANALYZE for that. Explains the estimate for the index scan.
I don't see how the PK would play any special role in this.