Yes, you can if the tasks are independent. However, you should use multiple command queues to enqueue multiple kernels/tasks to the device. Its specially effective on the cards which have the hardware support for handling multiple queues and commands simultaneously.
Otherwise, if you push many commands into a single in-order queue, you'll not get the concurrency you want. Runtime/driver may serialize the commands though they may be independent of each other. Yes, there is out-of-order queue supported by the OpenCL, but they are not a mandatory feature (for host-side queue) and an implementation may ignore the out-of-order execution. So, in that case, you'll not see any performance difference from an in-order queue.
Another point, task is nothing but a conceptual thing. Tasks are described same as any other kernels. So, they can be launched for a single or multiple work-item(s) as required by the application. For launching more than one work-items, clEnqueueNDRangeKernel is the only choice.
Regards,