Below query works for me , it retrieve valid results.  
from ProcessedMessages as pm
select {
    UniqueMessageId: pm.UniqueMessageId,
    MessageId: pm.MessageMetadata.MessageId,
    MessageType:pm.Headers["NServiceBus.EnclosedMessageTypes"],
    TimeSent: pm.Headers["NServiceBus.TimeSent"],
    ProcessingStarted: pm.Headers["NServiceBus.ProcessingStarted"],
    ProcessingEnded: pm.Headers["NServiceBus.ProcessingEnded"],
    ProcessingEndpoint: pm.Headers["NServiceBus.ProcessingEndpoint"]
}
I would like to add where clause , tried below but it doesn't work.
from ProcessedMessages as pm
where search(pm.Headers.'NServiceBus.EnclosedMessageTypes', '*task*') 
select {
    UniqueMessageId: pm.UniqueMessageId,
    MessageId: pm.MessageMetadata.MessageId,
    MessageType:pm.Headers["NServiceBus.EnclosedMessageTypes"],
    TimeSent: pm.Headers["NServiceBus.TimeSent"],
    ProcessingStarted: pm.Headers["NServiceBus.ProcessingStarted"],
    ProcessingEnded: pm.Headers["NServiceBus.ProcessingEnded"],
    ProcessingEndpoint: pm.Headers["NServiceBus.ProcessingEndpoint"]
}
from ProcessedMessages as pm
where search(pm.Headers["NServiceBus.EnclosedMessageTypes"], '*task*') 
select {
    UniqueMessageId: pm.UniqueMessageId,
    MessageId: pm.MessageMetadata.MessageId,
    MessageType:pm.Headers["NServiceBus.EnclosedMessageTypes"],
    TimeSent: pm.Headers["NServiceBus.TimeSent"],
    ProcessingStarted: pm.Headers["NServiceBus.ProcessingStarted"],
    ProcessingEnded: pm.Headers["NServiceBus.ProcessingEnded"],
    ProcessingEndpoint: pm.Headers["NServiceBus.ProcessingEndpoint"]
}