Then you probably have to filter the result list yourself. While it sure would be technically possible to do the filtering on the server side, it is currently not specified and hence also not implemented.
Is there any other way I can do? I mean can i write query using smack or without smack in which i can get this result? If yes then guide me in some direction.
You could do something along the lines of messages.stream().filter(m -> !hasDeliveryReceipt(m)).collect(Collectors.toList());
where hasDeliveryReceipt() is a method that returns true if the message contains a delivery receipt and where messages is the list of messages you got back from the MAM query.