If you are using Inheritance Projects you can define promotions in base job. You can then choose some of the promotion processes to be visible in some derived jobs but not others. If parameter Visible evaluates to "true" or is empty, then it is visible, it is not visible otherwise. You can also use parameters, e.g. ${PARAMETER_NAME} to reference other parameters. Note that only default values of the parameters are evaluated, i.e. parameters of the jobs, not the builds are taken into account.

Example configuration

In this configuration DERIVEDEnabled will show promotion Promotion but DERIVEDDisabled will not show it.