On which server does a query execute?
When sp_foo executes there is only one query:

SELECT * 
FROM (
  SELECT * 
  FROM ServerB.database.dbo.Table1 
  WHERE Column1 IN (1,2,3))
WHERE Column1=1;


This query can execute locally against a remote scan or it can execute remotely. What happens cannot be foretold, because it depends on the capabilities advertised by driver in use by the linked server. Typically a query like above over a linked server that uses SQLNCLI driver it will execute remotely. Local execution backed by a remote scan shows up on the execution plan as Remote Scan Showplan operator.

More complex plan can execute somehow mixed, partially remote partially locally, eg. see Linked Server behavior when used on JOIN clauses.