A raster is the right concept, but my guess it will be easier to work with a vector grid. Consider creating a new hexagon grid and "updating by spatial location" the attributes of the new grid with each of the point layers. Obviously the size of your grid will determine how frequently you get "presence points" vs the scale of the whole study area.
EDIT
My apologies, the tool is called JOIN ATTRIBUTES by location from the VECTOR menu. The JOIN in the name is an unfortunate wording considering it's use elsewhere describing a dynamic join in a project. In this case it is a one-off relationship only whilst the function is being executed. And then unfortunately there is a multitude of options about the spatial part which really are best tested by trial and error... (i.e. I don't know what they all mean!) (if you seek a full a description of these functions it is somewhere in the GRASS wiki/help). A tutorial along similar lines is here; https://www.qgistutorials.com/en/docs/3/performing_spatial_joins.html
See below how it looks on my machine;
(note the CRS/SRID/EPSG are both the same, as you get into more complex tools, QGIS tends not to support On The Fly Reprojection)

join attributes by location
doesn't work, the points are probably not in exactly the same location. Try using thesnap to grid
orsnap to layer
tool to make the point locations identical.