Solution:
I forgot to specify, but besides the lambda_function.py I was also using some helper functions to keep my code ordered. However, it seems that the modules for the AWS Lambda Layers are not visible for these, so ideally all the imports should be in the main lambda_function.py that is invoked by the handler.
I didn't find any information about this on the documentation, so I'm posting the solution in case anyone finds it useful.
When using AWS Lambda Layers, all module imports should be on the main function called by the handler (e.g. lambda_function.py)
Python version for packages should be the same as the AWS Lambda runtime environment (follow this tutorial https://docs.aws.amazon.com/lambda/latest/dg/python-layers.html)
Changes take some time to reflect (even if AWS says it's ready), so after deploying and uploading layer, give it 2-3 minutes for the backend to update (only in case it doesn't work initially)