When you create an element you must say what namespace it is to go in. The way you have invoked xsl:element asks for the element to go in the null namespace, so that is where it has gone. If you want it in a different namespace, use the namespace attribute to control this. It won't automatically go in the same namespace as its new parent element, which is presumably where you want it to go.
Namespace declarations are added by the serializer based on the names you have chosen for your elements (where the name is in two parts, namespace URI and local name). Your problem isn't an unwanted namespace declaration, your problem is that the element has been given the wrong name.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference