You need to change it to:
EXECUTE AS LOGIN= 'SRVLINK'
EXEC ('
SELECT FROM OPENQUERY([SIPRDSCO], ''select FROM
EXSDTA.PRREELLE WHERE 1=2'')'
REVERT
The reason for this is that when you execute the stored procedure, SQL Server wants to build a query plan for the entire procedure. And that includes queries in OPENQUERY. So it attempts to access the linked server under the security context that applies when the stored procedure starts. By wrapping the select in dynamic SQL, you push into an inner scope and compilation is now performed under the security context of SRVLINK.