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.
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 locationdoesn't work, the points are probably not in exactly the same location. Try using the
snap to gridor
snap to layertool to make the point locations identical.