If fields are not stored ("store":false in mapping), it is still possible to query fields using the "fields":[ "foo", "bar" ] query syntax as the fields are taken from the _source.
If however you use a wildcard : "fields": [ "*" ] then no fields are returned.