find needs the start directories first, while xargs by default puts them last. You can use -i or -I option for xargs
Code:
find / -xdev -type d -iname collectd | xargs -i find {} -type f -iname "*.cgi"
but an ls on the directories is simpler
Code:
find / -xdev -type d -iname collectd -exec ls {} \; | grep '.*\.cgi$'