That is correct, QueryTask results only include fields that are specified in the Query.OutFields.
Are you using DataGrid or FeatureDataGrid? How does your binding statement look like? You can probably set a FallBackValue so that this does not fail.
{Binding Attributes[STATE_NAME], FallbackValue=NotAvailable}