There is an important difference between using lists with blocking operations and the pub/sub facilities.
A list with blocking operations can easily be used as a queue, while pub/sub channels do not involve any queuing. The only buffers involved in pub/sub are related to communication (i.e. socket management). It means when a message is published, it will be transmitted ASAP to the subscribers, it is never kept in Redis. A consequence is if the subscribers do not listen anymore to the Redis socket, the items are lost for these subscribers.
Another important difference is the pub/sub mechanism can multicast items. When the items are published they are sent to all the subscribers. On the contrary, considering multiple daemons dequeuing a list in Redis using blocking operations, pushing an item to the list will result in the item to be dequeued by one and only one daemon.
Blocking lists (i.e. queues) and pub/sub channels are really complementary facilities.
If you do not need to multicast items, you should rather use list with blocking operations, since they are much more reliable.