You can only use a query to set the root item of the tree to be shown in the treelist. This functionality is only supported from 7.2 update 2 (according to the release notes):
"The Treelist and TreelistEx classes now support Sitecore query in the source for these field types. (319249)"
If you do query:../* Sitecore will choose the *first* child of the parent of the current context item, which might or might not be what you need. If you want to use the current item as root, the right query is query:.
However, there seems to be a bug, as that does not work. So you are forced to do this instead query:ancestor-or-self::*
Remember you can use parametrized datasources in treelists and treelistex if you want to put further restrictions on what they can or can't select. John West to the rescue, as usual: www.sitecore.net/.../apply-treelist-inclusion-and-exclusion-criteria-dynamically-with-the-sitecore-aspnet-cms.aspx
If you want to use a query to populate all the options in the field, you have to use a multilist field instead of a treelist.