query.Query = @"<Where>
<And>
<BeginsWith>
<FieldRef Name='ContentTypeId'/>
<Value Type='Text'>[LONG GUID]</Value>
</BeginsWith>
<And>
<Geq>
<FieldRef Name='PublishingStartDate' />
<Value Type='DateTime'>2011-01-01T15:55:52Z</Value>
</Geq>
<Leq>
<FieldRef Name='PublishingStartDate' />
<Value Type='DateTime'>2011-01-01T15:55:52Z</Value>
</Leq>
</And>
</And>
</Where>
<OrderBy>
<FieldRef Name='PublishingStartDate' Ascending='FALSE' />
</OrderBy>";
The above query is attempting to bring back all items of a certain content type between two dates and order (descending) by the same date field.
EDIT: I should mention that this is an SPSiteDataQuery
I do not see anything wrong in your CAML. One thing I noticed is the value of the PublishingStartDate filter values. Both Geq and Leq are having exactly the same date time value.
Are you sure that both filter should be using the same date time?