Reusable workflows are not created for specific list or library but as the name suggests, they can be associated to any list or library. If you create a reusable workflow from SharePoint designer, you need Associate the workflow to a List to make it works.
The following article for your reference.
SharePoint 2013: Create Reusable Workflow on Content Type using SharePoint Designer 2013
If you want to get the workflow from the list, for SharePoint 2010 workflow, we can use the code below.
List list = web.Lists.GetByTitle("TestList");
clientContext.Load(list);
clientContext.ExecuteQuery();
var workflows = list.WorkflowAssociations;
clientContext.Load(workflows);
clientContext.ExecuteQuery();
for (int i = 0; i < workflows.Count; i++)
{
Console.WriteLine(workflows[i].Name);
Console.WriteLine(workflows[i].Id);
}
For SharePoint 2013 workflow, we can use this.
WorkflowServicesManager workflowServiceManager = new WorkflowServicesManager(clientContext,web);
clientContext.Load(workflowServiceManager);
clientContext.ExecuteQuery();
var workflowSubscriptionService = workflowServiceManager.GetWorkflowSubscriptionService();
clientContext.Load(workflowSubscriptionService);
clientContext.ExecuteQuery();
Guid listId = new Guid("{9AA28BEC-8195-4355-B933-C4BFC753647E}");
var subscriptions = workflowSubscriptionService.EnumerateSubscriptionsByList(listId);
clientContext.Load(subscriptions);
foreach (var sub in subscriptions)
{
Console.WriteLine(sub.Id);
Console.WriteLine(sub.Name);
}