How can I give permission to a user to view ONLY the item he must approve (in a workflow)?
The user must approve/reject an item, but must not see the full list of items.
You will need to break inheritance on the list items and then assign or remove permissions as needed.
With SharePoint 2013 workflows - there is no activities available to do this. You can make a REST activity to call the API to do it, but it's an undocumented API (i.e. not supported).
The other option is to use SharePoint 2010 workflow. You can either build your entire approval workflow in this mode or call it from 2013 service using the workflow interop activity (in SharePoint designer - it's "start a workflow" action I believe). Make sure to build your 2010 workflow first,
You would want to create a default view on your tasks list where Assigned To is equal to [Me] and percent Complete is less than 100. This will filter the data to show the current logged in user's tasks that are not complete.
This isn't secure in the sense, the user could get to all the list items, it is just a filter of the existing list data. I don't know how secure you actually need it, in most cases this is sufficient.
must not see
How crucial is it that the user not gain access to filtered items? Set a filter on a view, Assigned To = "[Me]". Make it the default view and if necessary delete other views which would reveal the items.