To answer the follow-up subtly different question:
> I'm still wondering how would be if my subdirectories didn't have same names as in list though....
Let's make some assumptions:
* All the subdirectories of `x` are fair game.
* All `.pest` files are fair game.
* If you have two `.pest` files with the same name (but in different directories), you don't care what order those two files will be `cat`ed in.
Then you have:
while read -r name; do
cat x/*/"$name.pest"
done
Adding sanity checking is a little bit trickier but still doable. (I'm not doing that part as I don't know if my assumptions even match your use case.)