The logic in the iRule doesn't make sense to me. If client_addr equals "10.2.2.4" redirect, else use pool. Then you do a not test on the client_addr which would be the same case as the previous else. You then have an extra "{use pool mydomain}" before the else.
This is a shot in the dark, but this might do what you want
if (client_addr == 10.2.2.4)
{ redirect to "https://mydomain/admin/init.do" + http_uri }
else
{ redirect to "https://mydomain/baa/init.do" + http_uri }
If you define the default pool to "mydomain" this should work for you. I'm still unclear how the "discard" fits in. What case would you want that applied since you are only comparing on source ip and that is either equals or not equals.
If you can provide a more detailed logic flow for how you want it to work, I could try to expand a bit further on this.
-Joe