In libgearman-server/plugins/queue/drizzle/query.cc the function drizzle_column_skip is used. Despite the description of this function this only skips one column and leaves the rest in network buffer for retrieval. This then breaks the row retrieval.
In libdrizzle I have just pushed up a fix for bug #528410 which adds the function drizzle_column_skip_all and also errors correctly if row retrieval is attempted before all columns have been retrieved.
For gearman I recommend calling drizzle_column_skip repeatedly until all columns have been retrieved (so loop drizzle_result_column_count() number of times). Note that this will still break in libdrizzle from Drizzle < 2011-08-01 due to bugs in drizzle_column_skip.