Find smallest subset prefixes (part 2)
PEP 8

You still haven't followed PEP 8. Please:


Install (for example) Pylint.
You can run it as pylint filename.py.
If you use Vim you can install syntastic and every time you save it will run either flake8 or pylint.
There are alternatives for other text editors please install one, it will save you time in the long run.


def main

You have used if __name__ == "__main__": which is good. It is even considered more idiomatic (see this answer under "An Even Better Way") to do this:

def main():
    words = ('foo', 'foog', 'food', 'asdf')
    root = TrieNode()
    for w in words:
        root.insert(w)
    result = []
    root.find_prefix([], result)
    print result

if __name__ == "__main__":
    main()


Immutability

You don't mutate words. I would turn it into a tuple.