I lost a day solving this problem.
I am building a theme for a site that will use the eShop plugin and was trying to generate a sidebar menu on certain pages using this simple code in a function in a function in my functions.php:
wp_list_pages("child_of=19");
It returned nothing. I spent several hours trying to "solve" a possible syntax error, or so I thought. On the very same sidebar, I was using wp_list_bookmarks and it worked just fine and I couldn't see a difference in the syntax for passing arguments between my usage of the two functions. I read the codex repeatedly, couldn't figure out what I was doing wrong. I figured I was just not seeing something, so after several hours puzzling over semicolons, curly braces, quotes and doublequotes, trying to find my error, I eventually called it a day.
The next day, I expected I'd look at my code and see an obvious syntax error I'd missed previously, as that ALWAYS happens to me. But nada. I tried it without the child_of argument and it returned a list! So next, I went to phpMyAdmin and verified that I had pages with that parent. Yes, I had the child_of ID right. I even wrote a SQL statement and verified that it returned the pages I wanted. Hmmm...
Perplexed, I downlaoded my entire site and searched for: function wp_list_pages to see if I could figure it out. I hate doing this, as I don't know the codebase, and the functions all call other WP functions, and one gets into a loop of trying to understand things that I don't really want to understand; I'm trying to be a user of WP, not a developer of it.
But I didn't have to dig through the code in that manner. I saw that there was a filter called wp_list_pages_excludes in the function and a search of the code for my site showed that eShop was using it. Which made a lot of sense since eShop puts "product" pages under "department" pages and whatnot. Obviously, I can't touch eShop's filter without breaking eShop.
But I need to use the unfiltered function myself. I don't know if there's a better solution, but since I didn't want to understand the WP codebase well enough to roll my own function, I copied the wp_list_pages function into my functions.php file, renamed it to cw_list_pages (all my functions for this site are named "cw_something_or_other") and commented out the line where the output got filtered. And now cw_list_pages("child_of=19") works in my template.
As noted, I am just putting this up so when someone else runs across the same problem and Googles, they'll find the answer, cause I sure didn't! This problem cost me a day of coding time and I hope I can save someone else the bother.