Different theme for personal message topics list?

You’re right; the topic data is unavailable in the header, which makes sense!

CSS can be a solution. Keep the condition in topic-list-item, and render it by default for the header.

{{raw "topic-list-header-column" order='posters' forceName='Participants'}}

And with CSS, you can say, "Select the list that doesn’t have (not has) the posters rows and hide it "

.topic-list:not(:has(.topic-list-body .topic-list-data.posters))
  .topic-list-header
  .topic-list-data.posters {
  display: none;
}

Does it work for you?