Workflow works only when Published not while Checked-out for current User.
Steps to Reproduce
Checkout a workflow, make a change then test.
This is happening due to timer in the custom workflow FJS - SC Request workflow(OOB Service Catalog Request workflow).
This happens only to the workflow attached to sc_req_item table.
This happens because, since the start workflow business rule is responsible to start the sc_req_item table workflow and the FJS - SC Request workflow (OOB Service Catalog Request workflow) has timer. Once the timer is initiated, the system has the control of the workflow and it is approved as system rather than the current user, it picks up the published version rather than the check-out version, since only for current user checked-out version will be triggered.
Now since it is the system it will still have the latest published version and hence it will attached the published version.
When you remove the timer, it is the user who has initiated the request and hence attaches the checked-out version for current user.
Either remove the timer, or you will have to publish the workflow and test every time in case timer is the business requirement.