If it is file1 that has two columns, why are you reading from file2?
There are so many things wrong with that piece of code that it's hard to know where to begin.
That code is reading the entire file into an array for every line of the file. I tried it with a 9-line file, and it created 81 lines of output. If you got blank lines, you are probably reading the wrong file.
If you want to put the first field of a file into an array, there are many ways to do it. For example, using a while loop as you have:
count=0
FILE=file1
exec 3<"$FILE" ## Some shells only support FDs <= 9
while read a b <&3; do ## split the line as you read it
ARRAY1[$count]=$a
count=$(( $count + 1)) ## Use standard syntax for arithmetic
done
printf "%s\n" "${ARRAY1[@]}"
More efficient is:
## Assuming that the fields are separated by spaces
## Change the delimiter (and possibly IFS) if using something else
ARRAY1=( $(cut -d ' ' -f1 file1) )