Your code
<xsl:if test="//n1:templateId[@root='2.16.840.1.113883.10.20.1.12']">
says "if there is a templateId with this value of @root somewhere in the document, then do this processing, otherwise do nothing." This has little resemblance to your English-language statement of the problem "render all element under the OID and nothing else".
I'm guessing wildly, but I suspect you might want
<xsl:for-each select="/n1:ClinicalDocument/n1:component/n1:structuredBody/n1:component/n1:section[n1:templateId/@root='2.16.840.1.113883.10.20.1.12']/n1:entry/n1:procedure">
Though I suspect that's still not quite right - the sort key doesn't bear much relationship to your input, and I don't see where n1:effectiveTime is supposed to come from.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference