Firstly, don't do this:
when you could do this:
<xsl:variable name="unit" select="Selling_UM_1"/>
In the first case you are constructing a tree, which involves copying data and allocating memory. In the second case you are merely creating a reference to existing nodes without copying anything.
Secondly, what do you mean by "empty"? There's a difference between the element being absent, and the element being present but without any content. It might even be present with irrelevant content, e.g <Selling_UM_1> </Selling_UM_1>. For convenience, I'll assume that you test for emptyness by testing whether normalize-space(Selling_UM_1) is a zero-length string.
Your logic is then:
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference