I just came across the thread now.
But shouldn’t it be possible to do the following:
{assign_variable:current_cat="{exp:weblog:entries weblog="yourweblog" limit="1" status="not home" disable="trackbacks|member_data|pagination"}{categories backspace='1'}{category_name}|{/categories}{/exp:weblog:entries}"}
{if "{current_cat}"!=""}
Categories: {current_cat}
{/if}
I didn’t test the code and it may be that you run into trouble since assign_variable is on e of the first things parsed. But it most certainly does run (tested) if you call this as an embed:
{embed="embeds/yourembededcall"
current_cat="{exp:weblog:entries weblog="hazmat" limit="1" status="not home" disable="trackbacks|member_data|pagination"}{categories backspace='1'}{category_id}|{/categories}{/exp:weblog:entries}"
and in the embeded template
{if "{embed:current_cat}"!=""}
Categories: {embed:current_cat}
{/if}
}