The best way is for M2 not to be interested in the same notification.
Otherwise, you can use the type property of the note as a discriminator. This is basically the Asynchronous Token pattern. When you make a request you need a way to know what to do when the data comes back.
Have Proxy P's list method take an extra string param called 'invoker'.
Have Mediator M1 pass its name (this.getName()) to the list as the invoker param.
When Proxy P makes the remote call on HttpService, an AsyncToken instance is returned. Rather than ignoring that return, get it into a var and store the invoker name on it:
var token:AsyncToken = service.send();
token.invoker = invoker;
Note that AsyncToken is a dynamic class you can add any property name to, so 'invoker' isn't magic.
When the result comes back, get not only the data from the ResultEvent but the token as well:
That token has the invoker nam on it so when you send the notification:
In M1 and M2, check the note type:
if (note.getType() = this.getName())