Custom Tab on TOOLS region only appears when there is an object on the scene
When we define a custom panel, it's bl_category property defines the name of the tab that it will be displayed in. As long as there is an active panel for a tab it will be shown.

A panel can have a poll() method which should be decorated as a @classmethod that determines if the panel can be displayed or not, by disabling the only panel displayed in a tab, the tab will disappear. To keep a tab visible you need a panel that is always visible, possibly by removing an existing poll() method.