Check for overlaps for several arrays in one query
I suppose you want something like this:

with param (p) as 
  ( values ('{cat}'), 
           ('{bird}'), 
           ('{dog}')
  ) 
select * 
from param left join tbl 
     on param.p::text[] &amp;&amp; tbl.arr ;


Result:

   p    | id |      arr       
--------+----+----------------
 {cat}  |  2 | {fish,cat,rat}
 {bird} |    | 
 {dog}  |  1 | {dog,mouse}
(3 rows)