Is it possible to mutate with query like in upsert?

You can just do an upsert

upsert  {
    query{
        q(func: type(message)) @filter(eq(msgOwner, "xxx")) { v as uid }
    }
    mutate {
        uid(v) <isRead> "true" . 
    }
}