Find the answer to your question
SearchCharacteristicsSet.Characteristics is not returned in GetProductSearchPage for some AttributeSetID.
Before making GetProductSearchPage API call, you need to check if the given category has product search page (Category.ProductSearchPageAvailable) and the category is catalog enabled (Category.CatalogEnabled).
If the category has product search page, both the ProdectSearchPageAvailable and CatalogEnabled properties must be true and be returned along with AttributeSetID in GetCategory2CS. Check a sample GetCategory2CS request and response here.
However; keep in mind that if the category has no product search page, the ProductSearchPageAvailable node is not returned in the GetCategory2CS. As a result, the AttributeSetID obtained in the GetCategory2CS is a not searchable attribute and you get an empty SearchCharacteristicsSet when you call GetProductSearchPage upon the AttributeSetID.