Templates can only match nodes that exist, they can't match nodes that don't exist. You have to do the work in the template for the parent element (the one that knows it has a missing child). Generally in XSLT 1.0 there aren't any easy short cuts, you just need to write the conditional logic. There are some nice constructs in 2.0, like writing
<xsl:copy-of select="(a, $x)[1]"/>
which outputs a copy of a if it exists, or $x otherwise.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference