I believe that you are hitting an order of execution error here. What Shane is saying could potentially resolve the problem depending on when this is getting assigned.
If you are doing a field update inside of a workflow that field update does not happen until after all the workflow criterias and process builder actions take place. What you have to be careful about is having the process builder rely on a field being updated by a workflow inside of that same execution context. The object will not receive that update (populate with your assigned value) until AFTER the process builder checks have run. This causes your checks to fail inside of the process builder. I believe all workflow and process builder field updates are grouped to happen after they execute. I am, however, unsure if selecting re-evaluate will tell that process builder to run again after the field updates have happened. If this is true then what Shane proposes should resolve the issue but this is the underlying cause of why you are seeing this happen. As a general rule, I do not create process builder actions that require a workflow to assign a value in the SAME execution context.
I use this list below as a reference when I am making workflows or process builder actions.
1.The new record field values are loaded from the request and overwrite the old values
2.All before triggers execute
3.System validation occurs, such as verifying that all required fields have a non-null value, and running any user-defined validation rules
The record is saved to the database, but not yet committed
All after triggers execute
Assignment rules execute
Auto-response rules execute
Workflow rules execute
If there are workflow field updates, the record is updated again
If the record was updated with workflow field updates, before and after triggers fire one more time (and only one more time)
Escalation rules execute
Parent rollup summary formula
All DML operations are committed to the database
Post-commit logic executes, such as sending email