If you are looking for the full string it is much easier. To look for a single value in an array, just use whereKey:equalTo:
as described here:
https://parse.com/docs/ios_guide#queries-arrays/iOS
[query whereKey:@"Id1" equalTo:searchId];
This returns rows where at least one entry in the array is equal to the search criteria (handles numbers, strings, boolean, etc).
If instead you truly want to find records where at least one item in the array contains a string within it, you will have to get tricky.
One option would be to have a non-visible field called (e.g.) "Id1_search". Create a before-update Cloud Code handler that joins all array values into a comma list, converting to lowercase too. Then you can use whereKey:containsString:
on that new field.