If enabled, posts imported to discourse via embeddings will default to unlisted until they receive a reply.
This pull request has been mentioned on Discourse Meta. There might be relevant details there:
Can you also assert that the hidden reason == imported_as_unlisted here?
I looked at that but the reason is attached to a post and means the first post is hidden, as opposed to the topic being unlisted.