As Pete M mentioned above you cannot filter directly on a multi-value lookup. The workaround to this is to use a CAML query via an HTTP POST. This does have the overhead of having to get the request digest, if the list doesn't have a large number of items, it may be best just to use client side filtering.
var endPoint = "http://yourdomain/_api/web/Lists/GetByTitle('<your list title>')/GetItems"
var caml = "<View>";
caml += "<Query>";
caml += "<Where>";
caml += "<Eq>";
caml += "<FieldRef Name=\"MultiLookupFieldName\" LookupId=\"TRUE\"/>";
caml += "<Value Type=\"LookupMulti\">"
caml += id;
caml += "</Value>";
caml += "</Eq>"
caml += "</Where>";
caml += "</Query>";
caml += "</View>";
var requestData = { "query" :
{"__metadata":
{ "type": "SP.CamlQuery" }
, "ViewXml": caml
}
};
$.ajax({
url: endpoint,
method: "POST",
data: requestData,
headers: {
"X-RequestDigest": $("#__REQUESTDIGEST").val(),
"Accept": "application/json; odata=verbose",
"Content-Type": "application/json; odata=verbose"
}
});