Force int array to compact memory
Assuming you use this structure within an actual UBO (which your example code doesn't do), just use an array of ivec4 and two indices.

const ivec3 cluster_max = ivec3(16, 8, 8);
const int cluster_max_lights = 4;

const int plix_count = cluster_max.x * cluster_max.y * cluster_max.z * cluster_max_lights;
const int plix_index_size = pl_count / 4;

const int plpt_count = cluster_max.x * cluster_max.y * cluster_max.z;
const int plpt_index_size = plpt_count / 4;

struct GlobalShaderData
{
    ivec4 pointLightIndices[plix_index_size];
    ivec4 pointLightsPerTile[plpt_index_size];
};

layout(std140) uniform shaderData
{
    GlobalShaderData globalShaderData;
};


To access a value from the arrays, you will have to divide the index by 4 to get the ivec4 index, then take the original index mod 4 and use that to index the ivec4.
To get the