User candidate to a task is just as you though : if a user "test1" membership to a group "market" and if candidate-groups="market" is set for the task node into the process declarartion then you shoud be able to query test1 as candidate for that that task !
Please make sure that you do not use version number into your process declaration (<process name="NAME" version="INTVALUE" xmlns="http://jbpm.org/4.4/jpdl">). And if so try to increase by one the version number. This is because unless you destroy the db on each run, the process with the non increased version number might have been deployed time ago. It would be possible that you did it with different attribute in the task node than candidate-group.... Who knows !
The only other thing i could recommend would be to go to JBPM4.4 there is no difficulty with the source code. However for the database you will have to check the migration procedure.
Regards
jnh