First, the template language isn't python. It is something I made up.
It seems that the empty value is coming from #column_1. If I am right then this template should work.
Code:
{:'first_non_empty(field('#column_2'), field('#column_1'), 'No')'}
It says use #column_2 if it has a value, otherwise use #column_1 if it has a value, otherwise return 'No'.