The important thing to remember is that the namespace prefix is merely an arbitrary prefix. It's not required to be empty, and you can make it anything you want.
From context, I'm assuming this is what your XML looks like?
If so, the elements without a prefix are not in an empty namespace. They're in the http://www.w3.org/2005/Atom
namespace, and you need only assign it an arbitrary prefix in your function call.
In [1]: from lxml import etree
In [2]: string = '''
...: <feed xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">
...: <entry>
...: <g:id>2</g:id>
...: <title>Some product</title>
...: </entry>
...: </feed>
...: '''
In [3]: root = etree.fromstring(string)
In [4]: root.xpath('/foo:feed/foo:entry/foo:title',namespaces={'foo': 'http://www.w3.org/2005/Atom', 'bar': 'http:/
...: /base.google.com/ns/1.0'})
Out[4]: [<Element {http://www.w3.org/2005/Atom}title at 0x10a3d7d40>]
In [5]: root.xpath('/foo:feed/foo:entry/bar:id',namespaces={'foo': 'http://www.w3.org/2005/Atom', 'bar': 'http://b
...: ase.google.com/ns/1.0'})
Out[5]: [<Element {http://base.google.com/ns/1.0}id at 0x10a9ed4c0>]