Just a guess, try moving mameinfo.dat and history.dat out of your MAME dir. Lawrence's patch removed the bit that set the path to these to /dev/null.
Otherwise all that text gets dumped in the -listxml output and gxmame might not be able to cope with it.
Here's an improved patch. The first time around, I had put the pipe to xml2info in the wrong spot, and the quick way to fix it was to remove the two /dev/null bits.
diff -Nur gxmame-0.34b/src/mameio.c gxmame-0.34b-xml/src/mameio.c --- gxmame-0.34b/src/mameio.c 2003-11-26 02:38:21.000000000 -0700 +++ gxmame-0.34b-xml/src/mameio.c 2004-07-18 13:58:18.890130776 -0600 @@ -217,7 +217,7 @@ /* Generate the list */ /* without including neither history nor mameinfo to have less to parse after*/ - opt=g_strdup_printf("%s -listinfo -%s /dev/null -%s /dev/null 2>/dev/null", + opt=g_strdup_printf("%s -listxml -%s /dev/null -%s /dev/null | xml2info 2>/dev/null", current_exec->path, available_options->mameinfo_file_option, available_options->history_file_option);