xQueueReceive() first call always returns false

I just cut and paste your code into a project, fixed vtaskdelay() to vTaskDelay(), corrected both calls to xTaskCreate() which in your code are missing the second parameter (the task name), and ran the code. The call to xQueueReceive() returned pdTRUE, which is what I think is expected. I would recommend you step into the xQueueReceive() in the debugger to see what that is not the case in your project.